package com.hsjk.szwj.module.official.conver.unit;

import com.hsjk.szwj.framework.common.pojo.PageResult;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleBannerCreateReqVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleBannerDetailRespVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleBannerPageRespVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleBannerUpdateReqVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleDiyCreateReqVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleDiyDetailRespVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleDiyPageRespVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleDiyUpdateReqVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleFeedCreateReqVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleFeedDetailRespVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleFeedPageRespVO;
import com.hsjk.szwj.module.official.controller.admin.unit.vo.AdminModuleFeedUpdateReqVO;
import com.hsjk.szwj.module.official.controller.app.unit.vo.AppModuleBannerDetailRespVO;
import com.hsjk.szwj.module.official.controller.app.unit.vo.AppModuleBannerPageRespVO;
import com.hsjk.szwj.module.official.controller.app.unit.vo.AppModuleDiyDetailRespVO;
import com.hsjk.szwj.module.official.controller.app.unit.vo.AppModuleDiyPageRespVO;
import com.hsjk.szwj.module.official.controller.app.unit.vo.AppModuleFeedDetailRespVO;
import com.hsjk.szwj.module.official.controller.app.unit.vo.AppModuleFeedPageRespVO;
import com.hsjk.szwj.module.official.dal.dataobject.unit.OfficialWebsiteModuleBannerDO;
import com.hsjk.szwj.module.official.dal.dataobject.unit.OfficialWebsiteModuleDiyDO;
import com.hsjk.szwj.module.official.dal.dataobject.unit.OfficialWebsiteModuleFeedDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * @author chenjiawei
 * @desc
 * @Date 2023/11/23 23:49
 **/
@Mapper
public interface UnitConvert {
    UnitConvert INSTANCE = Mappers.getMapper(UnitConvert.class);

    OfficialWebsiteModuleBannerDO convertModuleBannerDO(AdminModuleBannerCreateReqVO reqVO);

    OfficialWebsiteModuleBannerDO convertModuleBannerDO(AdminModuleBannerUpdateReqVO reqVO);

    PageResult<AdminModuleBannerPageRespVO> convertAdminModuleBannerPageRespVO(PageResult<OfficialWebsiteModuleBannerDO> result);
    PageResult<AppModuleBannerPageRespVO> convertAppModuleBannerPageRespVO(PageResult<OfficialWebsiteModuleBannerDO> result);

    OfficialWebsiteModuleDiyDO convertModuleDiyDO(AdminModuleDiyCreateReqVO reqVO);

    OfficialWebsiteModuleDiyDO convertModuleDiyDO(AdminModuleDiyUpdateReqVO reqVO);

    PageResult<AdminModuleDiyPageRespVO> convertAdminModuleDiyPageRespVO(PageResult<OfficialWebsiteModuleDiyDO> result);
    PageResult<AppModuleDiyPageRespVO> convertAppModuleDiyPageRespVO(PageResult<OfficialWebsiteModuleDiyDO> result);

    PageResult<AdminModuleFeedPageRespVO> convertAdminModuleFeedPageRespVO(PageResult<OfficialWebsiteModuleFeedDO> result);
    PageResult<AppModuleFeedPageRespVO> convertAppModuleFeedPageRespVO(PageResult<OfficialWebsiteModuleFeedDO> result);

    OfficialWebsiteModuleFeedDO convertModuleFeedDO(AdminModuleFeedCreateReqVO reqVO);

    OfficialWebsiteModuleFeedDO convertModuleFeedDO(AdminModuleFeedUpdateReqVO reqVO);

    AdminModuleBannerDetailRespVO convertAdminModuleBannerDetailRespVO(OfficialWebsiteModuleBannerDO bannerDO);

    AppModuleBannerDetailRespVO convertAppModuleBannerDetailRespVO(OfficialWebsiteModuleBannerDO bannerDO);
    AdminModuleDiyDetailRespVO convertAdminModuleDiyDetailRespVO(OfficialWebsiteModuleDiyDO diyDO);
    AppModuleDiyDetailRespVO convertAppModuleDiyDetailRespVO(OfficialWebsiteModuleDiyDO diyDO);

    AdminModuleFeedDetailRespVO convertAdminModuleFeedDetailRespVO(OfficialWebsiteModuleFeedDO feedDO);
    AppModuleFeedDetailRespVO convertAppModuleFeedDetailRespVO(OfficialWebsiteModuleFeedDO feedDO);
}
